import axios from 'axios'
import { ElLoading } from "element-plus"

let loadingInstance;

axios.defaults.headers['Content-Type'] = 'application/json;charset=utf-8'
// 创建axios实例
const service = axios.create({
  // axios中请求配置有baseURL选项，表示请求URL公共部分
  baseURL: '/dev-api',
  // 超时
  timeout: 100000
})

// 请求拦截器
service.interceptors.request.use((config) => {
  // 在每次请求时都全局加载
  loadingInstance = ElLoading.service({
    lock: true,
    background: "rgba(0, 0, 0, 0.7)",
  })
  return config
}, error => {
  console.log(error)
  Promise.reject(error)
})

// 响应拦截器
service.interceptors.response.use((res) => {
  loadingInstance.close()
  return res
},
  error => {
    console.log('err' + error)
    let { message } = error;
    if (message == "Network Error") {
      message = "后端接口连接异常";
    } else if (message.includes("timeout")) {
      message = "系统接口请求超时";
    } else if (message.includes("Request failed with status code")) {
      message = "系统接口" + message.substr(message.length - 3) + "异常";
    }
    return Promise.reject(error)
  }
)

export default service
